package com.dbh.jdk.concurrent;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 *  计划任务示例
 *     任务会执行1秒钟时间，调度周期为2秒。即2秒执行一次
 *      注意：如果任务时间超过调度周期，不会出现堆叠现象的，周期会变成任务执行时间
 * @author dongbanghui
 * @date 2018/06/02
 */
public class ScheduledExecutorServiceDemo {
    public static void main(String[] args) {
        ScheduledExecutorService ses = Executors.newScheduledThreadPool(10);
        //如果前面的任务没有完成，则调度也不会启动
        ses.scheduleAtFixedRate(() -> {
            try {
                Thread.sleep(10000);
                System.out.println(System.currentTimeMillis()/1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },0 ,2, TimeUnit.SECONDS);
    }
}
